const pollingBase = 1000 * 10 // 10s
const devFixedPolling = 0 // 开发调试时的固定轮询间隔(默认关闭)

export const requestConfig = {
  pollingNormal: {
    // 用于useRequest的轮询配置
    pollingInterval: import.meta.env.DEV ? devFixedPolling : pollingBase * 3, // 间隔(默认开发环境关闭轮询, 生产环境30s)
    pollingWhenHidden: false, // 页面隐藏时是否继续(默认false)
  },
  pollingLower: {
    // 低频轮询 间隔1分钟
    pollingInterval: import.meta.env.DEV ? devFixedPolling : pollingBase * 6,
    pollingWhenHidden: false,
  },
  pollingLowest: {
    // 超低频轮询 间隔10分钟
    pollingInterval: import.meta.env.DEV ? devFixedPolling : pollingBase * 60,
    pollingWhenHidden: true, // 超低频下资源占用忽略不计, 因此默认保持开启
  },
  pollingHigher: {
    // 高频轮询 间隔20s
    pollingInterval: import.meta.env.DEV ? devFixedPolling : pollingBase * 2,
    pollingWhenHidden: false,
  },
  pollingHighest: {
    // 超高频轮询 间隔10s
    pollingInterval: import.meta.env.DEV ? devFixedPolling : pollingBase,
    pollingWhenHidden: false,
  },

  timeout: 10 * 1000, // 超时时间(默认10s)

  responseEnum: {
    // 响应状态码及提示信息枚举
    success: {
      code: 200 || 0,
      msg: '成功',
    },
    ok: { // success alias
      code: 200 || 0,
      msg: '成功',
    },
    tokenExpired: {
      code: 401,
      msg: '权限认证已过期',
    },
    tokenInvalid: {
      code: 403,
      msg: '无对应操作权限',
    },
    notFound: {
      code: 404,
      msg: '系统资源不存在',
    },
    serverError: {
      code: 500,
      msg: '服务器错误或网络故障',
    },
    default: { // success alias
      msg: '未知系统错误，请反馈给管理员',
    },
  },

  headerTokenKey: 'Authorization', // 请求头token键名(默认Authorization)
}
